/*
 * NyuGC.hpp
 *
 *  Created on: 2010/05/26
 *      Author: mitsu
 */

#ifndef NYUGC_HPP_
#define NYUGC_HPP_

#include <cstddef>

class NyuContext;
class NyuObject;
class NyuGC {
public:
    static void* allocate(size_t size);
    static void minorGC();
    static void majorGC();

    static NyuObject* copy(NyuObject* obj, bool* is_new_area = 0);

    static void addContext(NyuContext* c);
    static void removeContext(NyuContext* c);
};

#endif /* NYUGC_HPP_ */
